/**
 * Copyright 2018 人人开源 http://www.renren.io
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package io.renren.service;


import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import io.renren.common.utils.R;
import io.renren.entity.StudentEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 用户
 *
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2017-03-23 15:22:06
 */
public interface StudentService extends IService<StudentEntity> {



    /***
     * 登录
     * 账号可以是手机号或者身份证
     * @param account 账号(手机或身份证)
     * @param password 密码
     * @return
     */
    Map<String, Object> login(@Param("account") String account, @Param("password") String password);

    /**
     * 分页获取学生列表
     *
     * @return
     */
    Page getListbyPage();

    /**
     * 获取学员信息
     * @param student 学员
     * @return R
     */
    public R getStudentInfo(StudentEntity student);

    /***
     * 获取学校信息
     * @param schoolId 学校id
     * @return R
     */
    R getSchoolInfo(@Param("schoolId") Integer schoolId);

    /**
     * 获取学校列表
     *
     * @return R
     */
    R getSchoolList();

    /**
     * 小程序
     * 一键报名
     *
     * @param realName  真实姓名
     * @param phone     手机号码
     * @param idCard    身份证
     * @param signUpSubjectId 科目id
     * @return R
     */
    R signUpRecord(String realName, String phone, String idCard, Integer signUpSubjectId);

    /***
     *小程序
     * 获取一键报名科目id
     * @param type 科目类别:1人社 2交通 3安监
     * @param subjectName 科目名称
     * @return
     */
    R getSignUpSubjectId(@Param("type") Integer type, @Param("subjectName") String subjectName);



    /***
     * 小程序
     * 获取证件信息
     * @param student 学员
     * @return
     */
    R getCertificate(StudentEntity student);

    /***
     * 小程序
     * 修改个人中心
     * @param student 学员
     * @param imgUrl 头像
     * @param realName 真实姓名
     * @param phone 电话
     * @param idCard 身份证
     * @param userName 昵称
     * @param sex 性别 1男 2女 3保密
     * @return
     */
    R setCenterInfo(StudentEntity student, String imgUrl, String realName, String phone, String idCard, String userName, Integer sex);

    /***
     * 小程序
     * 获取我的订单
     * @param student 学员
     * @return R
     */
    R getOrderList(StudentEntity student);

    /***
     * 小程序
     * 获取个人中心信息
     * @param student
     * @return R
     */
    R getCenterInfo(StudentEntity student);

    /***
     * 小程序
     * 登录(手机号码+验证码)
     * @param phone 手机
     * @Param smsCode 验证码
     * @return
     */
    Map<String, Object> XLogin(String phone, String smsCode);

    /***
     * 退出登录
     * @param student 学生
     * @return
     */
    R logout(StudentEntity student);

    /***
     * 获取关联学校
     * @param student 学生
     * @return
     */
    R getRelatedSchool(StudentEntity student);
}
